import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Student } from './student.entity';

@Injectable()
export class StudentsService {
  // 构造函数注入 Student 实体的 Repository
  constructor(
    @InjectRepository(Student)
    private studentRepository: Repository<Student> // 私有属性，存储仓库实例
  ) {}

  // 查询所有学生
  findAll(): Promise<Student[]> {
    // 调用 Repository 的 find 方法，返回所有记录
    return this.studentRepository.find();
  }

  // 根据 ID 查询单个学生
  findOne(id: number): Promise<Student | null> {
    return this.studentRepository.findOneBy({ id });
  }

  // 创建学生
  async create(student: Student): Promise<Student> {
    // save 方法插入新纪录，自动处理主键
    return this.studentRepository.save(student);
  }


 // 更新学生信息
async update(id: number, student: Student): Promise<void> {
  // 使用 update 方法通过 ID 更新记录（不返回更新后的实体）
  await this.studentRepository.update(id, student);
}

// 删除学生
async remove(id: number): Promise<void> {
  // 使用 delete 方法通过 ID 删除记录
  await this.studentRepository.delete(id);
}
  
}